In a large enterprise, software components may perform business-critical tasks, with the components and often forming large software landscapes comprised of many components spread over many host systems operating together in a network. Because the components are software components and run as applications on host operating systems, their availability—their ability to perform the functions for which they are intended—is not easily monitorable using standard operating system monitoring tools, which have no knowledge of application-level software.
To address software components, certain systems include facilities for monitoring the availability of software components, with an agent being used to provide monitoring. However, the existing facilities are generally inadequate for availability monitoring purposes. In conventional systems, the frequency of availability monitoring is generally too infrequent. If a monitoring agent requires constant instruction, then the operation of the agent will require a great amount of processing and communications time. Further, the deployment of a single agent program to conduct actual availability checks may be inadequate for monitoring needs.